Amazon OmicsのReady2Runワークフローを試してみた
みなさんこんにちは、杉金です。
今回は、2023年5月ごろのアップデートでAmazon Omicsに追加されたReady2Runワークフローを試します。
Ready2Runワークフローとは
Amazon Omicsには大きく分けて2種類のワークフローが存在します。
- プライベートワークフロー
- Nextflow, WDL, CWLなどのAmazon Omicsがサポートしているワークフロー言語を使ったワークフローの実行
- Ready2Runワークフロー
- オープンソースのワークフローや企業が公開しているワークフローなど、あらかじめ定義されているワークフローの実行
Ready2Runワークフローは、用途や目的ごとに事前に用意されたもので、これを利用することでワークフロー作成や管理の手間を省くことができます。
Ready2Runワークフローの種類
本記事執筆時点で35種類のワークフローがあります。実際にAmazon Omicsのコンソール画面から確認してみましょう。まずはコンソールのReady2Run workflowsを選びます。
選択すると右側にワークフローの一覧が表示されます。各列には、ID、名前、バージョン、実行あたりの料金、提供元、サブスクリプションの要否、推定の実行時間などが記載されています。一番上にある「AlphaFold for 601-1200 residues」を見てみます。
ワークフロー概要
名前のリンクをクリックすると、対象のワークフローに関する情報を確認できます。
中央にある「Workflow files」のリンクから、サンプルのデータやパラメータファイルを確認できます。その下にある「Workflow help」から提供元のサイトにアクセスでき、ワークフローのより詳細な情報を確認できます。
下にスクロールするとワークフローの概要について書かれた箇所があります。
入力データとして何が必要かであったり、出力データとして何のファイルがアウトプットされるかを確認できます。
ワークフロー図
更に下にスクロールするとワークフロー図が確認できます。入力データがどのようなツールを使っており、出力ファイルがどのように作成されるかの流れを確認できます。
ワークフローの概要やワークフロー図から、実際に利用できそうかを判断することになりそうです。
やってみた
用意されているサンプルデータを使って試してみます。試すワークフローは推定実行時間の短さで「ESMFold for up to 800 residues」を選びました。1回実行するだけであれば手頃なお値段かと思われます。
サンプルの確認
対象ワークフローのサンプルデータを確認してみます。Workflow filesに記載されているリンクを選択します。
選択するとAmazon S3のコンソール画面に遷移します。2つファイルがあり、「parameters.json」がワークフロー実行時に使用するパラメータファイルで、「target.fasta」はサンプルの入力データとなります。
parameter.jsonファイルの中身はこちらです。
{ "fasta_path": "s3://omics-<region>/sample-inputs/1830181/target.fasta" }
fasta_pathとして「target.fasta」の配置場所が記載されています。入力データが配置されている場所を定義しているようです。これだけの情報を渡すだけでワークフローが実行できるのは手軽そうですね。
ワークフロー実行
それではワークフローを実行していきます。対象ワークフローの「Create run」を選択します。
実行のための詳細情報を入力していきます。
- Run name : 適当な名前を設定します
- Run priority : デフォルトの100で変更なし
- Select S3 output destination : 出力ファイルの配置先となるS3バケットを選択する
下にスクロールして実行の際に使用するIAMロールを指定します。今回はワークフロー作成とともにIAMロール作成を選びます。タグの設定は今回スキップして「Next」を選択します。
続いてパラメータファイルの設定です。
今回は前述したサンプルのパラメータを使用するため、4つあるうちの一番下にある「Run workflow with Ready2Run teset data」を選びます。選択すると下の方に設定したパラメータ(parameter.jsonで定義してあったfasta_path)が表示されます。
※本執筆時点では、コンソールの言語設定が日本語だと正しく表示されなかったため、Englishで表示させています
サンプルではなく実際のデータで試す場合は、データをS3に配置した後でparameter.jsonの内容を配置した場所に書き換えて、jsonファイルをこの画面で指定する形となります。
次へと進むと、実行前の最終確認が表示されますので、問題ないことを確認して一番下にある「Start Run」を選択します。
そうすると「Run」から実行状態を確認できます。
実行結果の確認
しばらく待つと、ステータスが完了となりました。(推定実行時間より多少時間がかかったので、推定実行時間はあくまで目安のようです)
「Run ID」から実行結果の詳細を確認してみます。「Details」タブの表示結果は以下のような形でした。実行時間などが確認できます。
「Task」タブの結果は次となります。各タスクの所要時間が確認できますね。
参考として対象のワークフロー図を記載します。
出力ファイルを見てみます。出力したAmazon S3バケットを確認します。ワークフロー実行IDと同じ値のフォルダ(プレフィックス)が存在します。
対象にアクセスしていくと「out/」以下に更にいくつかのフォルダが存在します。
ワークフロー図に記載されているファイルはそれぞれ以下にありました。
- metrics/ : metrics.json
- pae/ : pae.png
- pdb/ : prediction.pdb
prediction.pdb
metrics.json
metrics.jsonファイルの中身は以下です。
{ "model_name": "ESMFold", "model_version": "2.0.1", "start_time": "06 Jul 2023 10:41:14 +0000", "timings": { "sequence_load": 0.001, "model_load": 48.075, "prediction": 22.251, "output": 0.199, "total": 70.531 }, "target_id": "2022", "length": 100, "sequence": "GSTIQIPYTITVNGTSQNILSSLTFNKNQNISYKDIENKVKSVLYFNRGISDIDLRLSKQAEYTVHFKNGTKRVIDLKSGIYTADLINTSDIKAISVNVD", "pLDDT": 74.627, "pTM": 0.757, "max_predicted_aligned_error": 31.75, "peak_memory_gb": 19.6785, "peak_gpu_memory_gb": 0, "end_time": "06 Jul 2023 10:42:24 +0000" }
pae.png
pae.pngファイルの中身は以下です。
サンプルデータを利用したReady2runワークフローの実行は以上となります。
最後に
Ready2Runワークフローを試してみました。ゲノミクスやバイオインフォマティクスの知識は浅いため、使えるか不安だったのですが、サンプルデータが用意されており、それを選択して実行するだけでしたので手軽にできました。今後、この機能を活用できるシーンが増えることを期待したいです。